1. Field of the Invention
The present invention relates generally to data communications networks and, more specifically, the present invention relates to interpacket gaps interposed between data packets of a data communications network.
2. Background Information
Computer networks are used to interconnect many computing resources, such as for example computers, workstations, servers, printers, modems, storage devices, etc. For example, two or more computers may be connected together through a network medium. Network users are able to share files, printers and other resources, send messages and run applications on remote computers. An important part of any computer network includes the physical components or network communications devices used to interconnect the computing resources.
Local area networks are generally those networks that are confined to a limited physical location. As the size of a network increases, the number of nodes that load the network and the lengths of cables used to interconnect the nodes of the network increase correspondingly. However, as network size increases, the quality of the signals being transferred within the network deteriorates. Furthermore, network traffic also increases as network size increases, which results in an increased number of packet collisions and slower overall network performance.
Known methods of increasing the size and improving the performance of large networks include the utilization of network devices such as for example repeaters, switches, bridges, concentrators, hubs, or the like, to interconnect various smaller segments of the network. For example, a network device such as a repeater may be used to connect two or more network segments. The network device receives signals and provides signal amplification and retiming as necessary to clean up or restore the received signals, which may have deteriorated before being received by the network device. After the network device restores the signals, the signals may be retransmitted to the other parts of the network.
FIG. 1 is an illustration of a network 101 including a plurality of network devices 103, 105, 107 and 109 tightly coupled together in series. In the example illustrated in FIG. 1, the data contained in the signals transmitted between the network devices is organized into bit streams of packets or frames, with interpacket gaps interposed between each packet. Packets and interpacket gaps are received by network device 103 and then are retransmitted to network device 105. The packets and interpacket gaps are then retransmitted from network device 105 to network device 107, and so on.
It is noted that each one of the plurality of network devices 103, 105, 107 and 109 include an internal reference clock used to transmit and receive the packets to and from the corresponding neighboring network devices. In theory, all of the network devices 103, 105, 107 and 109 transmit and receive data at precisely the same speed. However, in reality, there is often at least a slight difference between the internal clock speeds of the neighboring devices. Consequently, there is a real possibility that one network device will send data faster than the recipient network device can send the data.
One known method of addressing the problem of clock differences between network devices is the utilization of elasticity buffers within each network device in combination with inserting interpacket gaps between the packets. In particular, data that is received from a neighboring upstream network device is stored within each network device in an elasticity buffer. Interpacket gaps are provided between packet transmissions to provide the network devices some recovery time between frames. Indeed, if the bit stream of a data packet were infinitely long, the elasticity buffer of the receiving network device would overflow.
As a series of frames propagates through series coupled network devices 103, 105, 107 and 109, the various timing differences, combined with the effects of signal amplification and restoration, may result in the shrinkage of the interpacket gaps. For example, assume that the internal clock in network device 109 runs slower than the internal clock in network device 107, which runs slower than the internal clock in network device 105, which runs slower than the internal clock in network device 103. Consequently, each upstream network device in FIG. 1 transmits faster than the neighboring downstream network device can transmit.
To address this situation, each one of the network devices 105, 107 and 109 shrink the interpacket gaps before retransmitting the packets downstream. Otherwise, the elasticity buffer within each network device would overflow. In addition, it is noted that generally at least an absolute minimum interpacket gap size must be maintained. An interpacket gap size that is too small may result in frames being overrun and therefore lost frames, which would need to be retransmitted.
Consequently, frames are generally sent with largely oversized interpacket gaps from upstream network devices to accommodate the possibility of all downstream network devices having to shrink the interpacket gap in the same pass. Thus, it is ensured that downstream network devices will receive the frames with interpacket gaps having at least the minimum required size, even if every intermediate network device had to shrink the interpacket gap.
One disadvantage of transmitting frames with largely oversized interpacket gaps from the upstream network devices is that a large amount of bandwidth and speed is sacrificed to ensure that the downstream network devices receive frames with adequately sized interpacket gaps. Thus what is desired is a method and an apparatus for transmitting frames in a network with interpacket gaps that are smaller than the largely oversized interpacket gaps discussed above, but still greater than or equal to the minimum required size. By transmitting smaller interpacket gaps, overall network bandwidth and speed will be improved.